package cn.com.headfree.vo.simple;

//import cn.com.headfree.util.SysDictionary2Util;
//import cn.com.headfree.util.SysDictionaryUtil;
import com.deepoove.poi.data.DocxRenderData;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 人员基本信息
 */
public class EmpBaseInfoVo {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 人资编号
     */
    private String erpNo;
    /**
     * 姓名
     */
    private String name;

    private String userName;

    /**
     * 性别
     */
    private String sex;
    /**
     * 出生年月
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date birthDate;
    /**
     * 民族
     */
    private String nation;
    /**
     * 籍贯
     */
    private String birthPlace;
    /**
     * 出生地
     */
    private String bornPlace;
    /**
     * 政治面貌
     */
    private String politiStatus;
    /**
     * 身份证号码
     */
    private String idCardNo;
    /**
     * 手机号码
     */
    private String mobilePhone;
    /**
     * 级别
     */
    private String level;
    /**
     * 薪档-salary_grade
     */
    private String salaryGrade;
    /**
     * 入党时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date partyDate;
    /**
     * 工作时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date jobDate;
    /**
     * 现任职务
     */
    private String curPost;
    /**
     * 创建者id
     */
    private String createrId;
    /**
     * 创建者姓名
     */
    private String createrName;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新者id
     */
    private String updaterId;
    /**
     * 更新者姓名
     */
    private String updaterName;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 0:未删除1：已删除
     */
    private Integer delSign;
    /**
     * 是否有效数据(0:有效，1:无效)
     */
    private Integer isValid;
    /**
     * 审核状态
     */
    private Integer auditState;

    /**
     * 部门名称
     */
    private String dept;

    /**
     * 单位名称
     */
    private String unit;

    private String id;

    //birth_date_str
    private String birthDateStr;

    //party_date_str
    private String partyDateStr;

    //job_date_str
    private String jobDateStr;

    private String postLevel ; // 职务级别

    private String employeeLevel; //职员职级

    public String getBornPlace() {
        return bornPlace;
    }

    public void setBornPlace(String bornPlace) {
        this.bornPlace = bornPlace;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    //导出word须要使用
    private DocxRenderData contestInfoEx;

    private DocxRenderData acadeAchiveInfoEx;

    private DocxRenderData contiStudyInfoEx;

    private DocxRenderData educateInfoEx;

    private DocxRenderData expertTitleInfoEx;

    private DocxRenderData honorInfoEx;

    private DocxRenderData patentInfoEx;

    private DocxRenderData projAchieveInfoEx;

    private DocxRenderData proTecInfoEx;

    private DocxRenderData skillLevelInfoEx;

    private DocxRenderData standInfoEx;

    private DocxRenderData tecInnovInfoEx;

    private DocxRenderData tecManInnovEx;

    private DocxRenderData workExpInfoEx;

    private DocxRenderData yearEffectInfoEx;

    private DocxRenderData sdtTutorPrentInfoEx;

    public String getBirthDateStr() {
        return birthDateStr;
    }

    public void setBirthDateStr(String birthDateStr) {
        this.birthDateStr = birthDateStr.substring(0, 10);
    }

    public String getPartyDateStr() {
        return partyDateStr;
    }

    public void setPartyDateStr(String partyDateStr) {
        if (StringUtils.isNotBlank(partyDateStr)) {
            this.partyDateStr = partyDateStr.split(" ")[0];
        } else {
            this.partyDateStr = partyDateStr;
        }
//        this.partyDateStr = partyDateStr.substring(0,10);
    }

    public String getJobDateStr() {
        return jobDateStr;
    }

    public void setJobDateStr(String jobDateStr) {
        if (StringUtils.isNotBlank(jobDateStr)) {
            this.jobDateStr = jobDateStr.split(" ")[0];
        } else {
            this.jobDateStr = jobDateStr;
        }
//        this.jobDateStr = jobDateStr.substring(0,10);
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public DocxRenderData getSdtTutorPrentInfoEx() {
        return sdtTutorPrentInfoEx;
    }

    public void setSdtTutorPrentInfoEx(DocxRenderData sdtTutorPrentInfoEx) {
        this.sdtTutorPrentInfoEx = sdtTutorPrentInfoEx;
    }

    public DocxRenderData getContestInfoEx() {
        return contestInfoEx;
    }

    public void setContestInfoEx(DocxRenderData contestInfoEx) {
        this.contestInfoEx = contestInfoEx;
    }

    public DocxRenderData getAcadeAchiveInfoEx() {
        return acadeAchiveInfoEx;
    }

    public void setAcadeAchiveInfoEx(DocxRenderData acadeAchiveInfoEx) {
        this.acadeAchiveInfoEx = acadeAchiveInfoEx;
    }

    public DocxRenderData getContiStudyInfoEx() {
        return contiStudyInfoEx;
    }

    public void setContiStudyInfoEx(DocxRenderData contiStudyInfoEx) {
        this.contiStudyInfoEx = contiStudyInfoEx;
    }

    public DocxRenderData getEducateInfoEx() {
        return educateInfoEx;
    }

    public void setEducateInfoEx(DocxRenderData educateInfoEx) {
        this.educateInfoEx = educateInfoEx;
    }

    public DocxRenderData getExpertTitleInfoEx() {
        return expertTitleInfoEx;
    }

    public void setExpertTitleInfoEx(DocxRenderData expertTitleInfoEx) {
        this.expertTitleInfoEx = expertTitleInfoEx;
    }

    public DocxRenderData getHonorInfoEx() {
        return honorInfoEx;
    }

    public void setHonorInfoEx(DocxRenderData honorInfoEx) {
        this.honorInfoEx = honorInfoEx;
    }

    public DocxRenderData getPatentInfoEx() {
        return patentInfoEx;
    }

    public void setPatentInfoEx(DocxRenderData patentInfoEx) {
        this.patentInfoEx = patentInfoEx;
    }

    public DocxRenderData getProjAchieveInfoEx() {
        return projAchieveInfoEx;
    }

    public void setProjAchieveInfoEx(DocxRenderData projAchieveInfoEx) {
        this.projAchieveInfoEx = projAchieveInfoEx;
    }

    public DocxRenderData getProTecInfoEx() {
        return proTecInfoEx;
    }

    public void setProTecInfoEx(DocxRenderData proTecInfoEx) {
        this.proTecInfoEx = proTecInfoEx;
    }

    public DocxRenderData getSkillLevelInfoEx() {
        return skillLevelInfoEx;
    }

    public void setSkillLevelInfoEx(DocxRenderData skillLevelInfoEx) {
        this.skillLevelInfoEx = skillLevelInfoEx;
    }

    public DocxRenderData getStandInfoEx() {
        return standInfoEx;
    }

    public void setStandInfoEx(DocxRenderData standInfoEx) {
        this.standInfoEx = standInfoEx;
    }

    public DocxRenderData getTecInnovInfoEx() {
        return tecInnovInfoEx;
    }

    public void setTecInnovInfoEx(DocxRenderData tecInnovInfoEx) {
        this.tecInnovInfoEx = tecInnovInfoEx;
    }

    public DocxRenderData getTecManInnovEx() {
        return tecManInnovEx;
    }

    public void setTecManInnovEx(DocxRenderData tecManInnovEx) {
        this.tecManInnovEx = tecManInnovEx;
    }

    public DocxRenderData getWorkExpInfoEx() {
        return workExpInfoEx;
    }

    public void setWorkExpInfoEx(DocxRenderData workExpInfoEx) {
        this.workExpInfoEx = workExpInfoEx;
    }

    public DocxRenderData getYearEffectInfoEx() {
        return yearEffectInfoEx;
    }

    public void setYearEffectInfoEx(DocxRenderData yearEffectInfoEx) {
        this.yearEffectInfoEx = yearEffectInfoEx;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    /**
     * 设置：人资编号
     */
    public void setErpNo(String erpNo) {
        this.erpNo = erpNo;
    }

    /**
     * 获取：人资编号
     */
    public String getErpNo() {
        return erpNo;
    }

    /**
     * 设置：姓名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取：姓名
     */
    public String getName() {
        return name;
    }

    /**
     * 设置：性别
     */
    public void setSex(String sex) {
        this.sex = sex;
//        this.sex = SysDictionaryUtil.getNameByValue("Gender",sex);
//        this.sex = SysDictionary2Util.getNameByValue("Gender",sex);
    }

    /**
     * 获取：性别
     */
    public String getSex() {
        return sex;
    }

    /**
     * 设置：出生年月
     */
    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
        if (birthDate != null) {
            this.birthDateStr = sdf.format(birthDate).split(" ")[0];
        }
    }

    /**
     * 获取：出生年月
     */
    public Date getBirthDate() {
        return birthDate;
    }

    /**
     * 设置：民族
     */
    public void setNation(String nation) {
        this.nation = nation;
//        this.nation = SysDictionary2Util.getNameByValue("Nation",nation);
    }

    /**
     * 获取：民族
     */
    public String getNation() {
        return nation;
    }

    /**
     * 设置：籍贯
     */
    public void setBirthPlace(String birthPlace) {
        this.birthPlace = birthPlace;
    }

    /**
     * 获取：籍贯
     */
    public String getBirthPlace() {
        return birthPlace;
    }

    /**
     * 设置：政治面貌
     */
    public void setPolitiStatus(String politiStatus) {
        this.politiStatus = politiStatus;
//        this.politiStatus = SysDictionary2Util.getNameByValue("PoliticalLandscapeText",politiStatus);;
    }

    /**
     * 获取：政治面貌
     */
    public String getPolitiStatus() {
        return politiStatus;
    }

    /**
     * 设置：身份证号码
     */
    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    /**
     * 获取：身份证号码
     */
    public String getIdCardNo() {
        return idCardNo;
    }

    /**
     * 设置：手机号码
     */
    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }

    /**
     * 获取：手机号码
     */
    public String getMobilePhone() {
        return mobilePhone;
    }

    /**
     * 设置：级别
     */
    public void setLevel(String level) {
        this.level = level;
//        this.level = SysDictionaryUtil.getNameByValue("StaffLevel",level);;
    }

    /**
     * 获取：级别
     */
    public String getLevel() {
        return level;
    }

    /**
     * 设置：薪档
     */
    public void setSalaryGrade(String salaryGrade) {
        this.salaryGrade = salaryGrade;
    }

    /**
     * 获取：薪档
     */
    public String getSalaryGrade() {
        return salaryGrade;
    }

    /**
     * 设置：入党时间
     */
    public void setPartyDate(Date partyDate) {
        this.partyDate = partyDate;
        if (partyDate != null) {
            this.partyDateStr = sdf.format(partyDate).split(" ")[0];
        }
    }

    /**
     * 获取：入党时间
     */
    public Date getPartyDate() {
        return partyDate;
    }

    /**
     * 设置：工作时间
     */
    public void setJobDate(Date jobDate) {
        this.jobDate = jobDate;
        if (jobDate != null) {
            this.jobDateStr = sdf.format(jobDate).split(" ")[0];
        }
    }

    /**
     * 获取：工作时间
     */
    public Date getJobDate() {
        return jobDate;
    }

    /**
     * 设置：现任职务
     */
    public void setCurPost(String curPost) {
        this.curPost = curPost;
    }

    /**
     * 获取：现任职务
     */
    public String getCurPost() {
        return curPost;
    }

    /**
     * 设置：创建者id
     */
    public void setCreaterId(String createrId) {
        this.createrId = createrId;
    }

    /**
     * 获取：创建者id
     */
    public String getCreaterId() {
        return createrId;
    }

    /**
     * 设置：创建者姓名
     */
    public void setCreaterName(String createrName) {
        this.createrName = createrName;
    }

    /**
     * 获取：创建者姓名
     */
    public String getCreaterName() {
        return createrName;
    }

    /**
     * 设置：创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取：创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置：更新者id
     */
    public void setUpdaterId(String updaterId) {
        this.updaterId = updaterId;
    }

    /**
     * 获取：更新者id
     */
    public String getUpdaterId() {
        return updaterId;
    }

    /**
     * 设置：更新者姓名
     */
    public void setUpdaterName(String updaterName) {
        this.updaterName = updaterName;
    }

    /**
     * 获取：更新者姓名
     */
    public String getUpdaterName() {
        return updaterName;
    }

    /**
     * 设置：更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取：更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置：0:未删除1：已删除
     */
    public void setDelSign(Integer delSign) {
        this.delSign = delSign;
    }

    /**
     * 获取：0:未删除1：已删除
     */
    public Integer getDelSign() {
        return delSign;
    }

    /**
     * 设置：是否有效数据(0:有效，1:无效)
     */
    public void setIsValid(Integer isValid) {
        this.isValid = isValid;
    }

    /**
     * 获取：是否有效数据(0:有效，1:无效)
     */
    public Integer getIsValid() {
        return isValid;
    }

    /**
     * 设置：审核状态
     */
    public void setAuditState(Integer auditState) {
        this.auditState = auditState;
    }

    /**
     * 获取：审核状态
     */
    public Integer getAuditState() {
        return auditState;
    }

    public String getPostLevel() {
        return postLevel;
    }

    public void setPostLevel(String postLevel) {
        this.postLevel = postLevel;
    }

    public String getEmployeeLevel() {
        return employeeLevel;
    }

    public void setEmployeeLevel(String employeeLevel) {
        this.employeeLevel = employeeLevel;
    }
}
